-- the simplest superposition is a single ket:
|blue>
|Fred Smith>
-- the next simplest superposition is a list:
-- eg, a list of fruit:
|apple> + |banana> + |orange> + |pear> + |avocado> + |cherry> + |plum>
-- however, a list is also a mathematical set:
{apple, banana, orange, pear, avocado, cherry, plum}
-- then a list with positive integer coefficients, eg a shopping list:
5|apple> + 7|orange> + |bread> + |coffee> + |chocolate> + 2|milk>
-- which is a mathematical multi-set:
-- https://en.wikipedia.org/wiki/Multiset
{(apple,5), (orange,7), (bread,1), (coffee,1), (chocolate,1), (milk,2)}
-- another example of positive integer coefficients (ie, a multi-set) is the prime factorization of a number:
-- usefully, we have a built in operator that maps positive integers to their factors:
sa: prime-factors |120>
3|2> + |3> + |5>
sa: prime-factors |1234567890>
|2> + 2|3> + |5> + |3607> + |3803>
-- and we can represent fuzzy states, such as hungry, tired and lonely:
-- https://en.wikipedia.org/wiki/Fuzzy_set
-- eg, very hungry, a little tired and somewhat lonely could be represented as:
0.94|hungry> + 0.2|tired> + 0.5|lonely>
-- finally, we can represent vectors as superpositions too:
-- eg, the vector [0.1, 7.2, 5, 0.09, 3.4] could be represented as:
0.1|x: 1> + 7.2|x: 2> + 5|x: 3> + 0.09|x: 4> + 3.4|x: 5>
-- where we have chosen |x: k> as the basis elements, but they can be any strings
-- where operators applied to any vector result in a new vector
-- if the operator is a numeric operator, then that is scalar multiplication
-- if the operator is a simple operator, then sometimes that is sparse matrix multiplication
-- otherwise, operators are a more general type of "multiplication"